首先知道下可以转换成false的值

  • null 注:localStorage.getItem() 与 sessionStorage.getItem() 获取一个不存在的值返回的也为null
  • NaN
  • 0
  • 空字符串 " "
  • undefined

判断条件返回true或者false

if (a && a.master && a.master.name) {} // 如果这三个属性都为true值,执行if逻辑
if (a || b) {} // 如果a或者b为true值,执行if逻辑。
if(a || b && c) // 此时需要注意运算顺序 是先算 a||b 然后使用它的值 && c  
if(a || (b && c)) //注意(b && c)

判断并返回条件对象

  • && 判断中,判断值都为 true,返回最后一个判断值;判断值中有 false

值,返回第一个 false 值。

  • || 判断中,判断值都为 true,返回第一个判断值;判断值中有 true 值也有 false 值,返回第一个为 true 的判断值;如果判断值都为 false,返回最后面的 false 值。

使用两个非

两个感叹号会确保参数为非值时只能为false或者true,不会是0、空字符串、undefined等非值。

n1 = !!true                   // 返回 true
n2 = !!{}                     // 返回 true: 任何对象都是true,空对象也是
n3 = !!(new Boolean(false))   // 返回 false
n4 = !!false                  // 返回 false
n5 = !!""                     // 返回 false
n6 = !!Boolean(false)         // 返回 false

fsme
781 声望3 粉丝